package com.sanyuan.cloud.module.system.service.user;


import com.sanyuan.cloud.framework.common.enums.TerminalEnum;
import com.sanyuan.cloud.framework.common.validation.Mobile;
import com.sanyuan.cloud.module.system.dal.dataobject.user.AdminUserDO;
import com.sanyuan.cloud.module.system.dal.dataobject.user.MemberUserDO;

/**
 * 会员用户 Service 接口
 *
 * @author 芋道源码
 */
public interface MemberUserService {


    /**
     * 基于手机号创建用户。
     * 如果用户已经存在，则直接进行返回
     *
     * @param mobile     手机号
     * @param registerIp 注册 IP
     * @param terminal   终端 {@link TerminalEnum}
     * @return 用户对象
     */
    AdminUserDO createUserIfAbsent(@Mobile String mobile, String registerIp, Integer terminal);


    /**
     * 更新用户的最后登陆信息
     *
     * @param id      用户编号
     * @param loginIp 登陆 IP
     */
    void updateUserLogin(Long id, String loginIp);

    /**
     * 通过用户 ID 查询用户
     *
     * @param id 用户ID
     * @return 用户对象信息
     */
    MemberUserDO getUser(Long id);


}
